﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="../Brushes.xaml"/>
  </ResourceDictionary.MergedDictionaries>

  <!-- Source: http://www.codeproject.com/Articles/442856/Visual-Studio-2012-Metro-Styles-for-WPF -->
  <!--Background-->
  <SolidColorBrush x:Key="Background" Color="#1C1C1C"/>
  <SolidColorBrush x:Key="LightBackground" Color="Transparent"/>

  <!--Foreground-->
  <SolidColorBrush x:Key="Foreground" Color="#FFFFFF"/>

  <SolidColorBrush x:Key="BackgroundSelected" Color="#007ACC"/>

  <!--Menu-->
  <SolidColorBrush x:Key="MenuSeparatorBorderBrush" Color="#333337"/>
  <SolidColorBrush x:Key="MenuItemHighlightedBackground" Color="#3E3E40"/>
  <SolidColorBrush x:Key="SubmenuItemBackground" Color="#1B1B1C"/>
  <SolidColorBrush x:Key="SubmenuItemBackgroundHighlighted" Color="#333334"/>
  <SolidColorBrush x:Key="MenuDisabledForeground" Color="#656565"/>

  <!-- x:Key="StandardMenu" -->
  <Style TargetType="{x:Type Menu}">
    <Style.Resources>
      <Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="Separator">
        <Setter Property="Height" Value="1"/>
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="Separator">
              <Border BorderBrush="{StaticResource MenuSeparatorBorderBrush}" BorderThickness="1" Margin="25,0,0,0"/>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
      <Style TargetType="{x:Type MenuItem}">
        <Style.Resources>
          <Geometry x:Key="Checkmark">M 0,5.1 L 1.7,5.2 L 3.4,7.1 L 8,0.4 L 9.2,0 L 3.3,10.8 Z</Geometry>
        </Style.Resources>
        <Setter Property="FontFamily" Value="{DynamicResource DefaultFontFamily}"/>
        <Setter Property="FontSize" Value="{DynamicResource DefaultFontSize}" />
        <Setter Property="Foreground" Value="{Binding Path=Foreground, RelativeSource={RelativeSource AncestorType={x:Type Menu}}}"/>

        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="{x:Type MenuItem}">
              <!--Border 1-->
              <Border x:Name="Border" Background="Transparent" BorderBrush="Transparent" 
                                    BorderThickness="1" SnapsToDevicePixels="False">
                <Grid x:Name="Grid">
                  <Grid.ColumnDefinitions>
                    <ColumnDefinition x:Name="Col0" MinWidth="17" Width="Auto" 
                                                          SharedSizeGroup="MenuItemIconColumnGroup"/>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="MenuTextColumnGroup"/>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="MenuItemIGTColumnGroup"/>
                    <ColumnDefinition x:Name="Col3" Width="14"/>
                  </Grid.ColumnDefinitions>

                  <ContentPresenter Grid.Column="0" x:Name="Icon" Margin="2,0,2,0" VerticalAlignment="Center" ContentSource="Icon"/>

                  <Border Margin="2,0,2,0" x:Name="GlyphPanel"
                          Width="18" Height="18"
                          Visibility="Collapsed"
                          HorizontalAlignment="Center"
                          Background="{DynamicResource CheckMarkBackgroundBrush}"
                          BorderBrush="{DynamicResource CheckMarkBorderBrush}"
                          BorderThickness="2" CornerRadius="0">

                    <Path Fill="{DynamicResource CheckMarkForegroundBrush}"
                          HorizontalAlignment="Center"
                          FlowDirection="LeftToRight"
                          x:Name="Glyph"
                          Width="9"
                          Height="11"
                          Data="{StaticResource Checkmark}" />
                  </Border>

                  <ContentPresenter Grid.Column="1" Margin="{TemplateBinding Padding}" 
                                    x:Name="HeaderHost" RecognizesAccessKey="True" 
                                    ContentSource="Header" VerticalAlignment="Center"/>

                  <ContentPresenter Grid.Column="2" Margin="8,1,8,1" x:Name="IGTHost" 
                                    ContentSource="InputGestureText" VerticalAlignment="Center"/>

                  <Grid Grid.Column="3" Margin="4,0,6,0" x:Name="ArrowPanel" VerticalAlignment="Center">
                    <Path x:Name="ArrowPanelPath" HorizontalAlignment="Right" VerticalAlignment="Center" 
                                              Fill="{TemplateBinding Foreground}" Data="M0,0 L0,8 L4,4 z"/>
                  </Grid>
                  <Popup IsOpen="{Binding Path=IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}" 
                          Placement="Right" HorizontalOffset="-1" x:Name="SubMenuPopup" Focusable="false"
                          PopupAnimation="{DynamicResource {x:Static SystemParameters.MenuPopupAnimationKey}}"
                          AllowsTransparency="True">
                    <Grid Margin="0,0,5,5">
                      <!--Border 2-->
                      <Border x:Name="SubMenuBorder" BorderBrush="{StaticResource MenuSeparatorBorderBrush}"
                                                     BorderThickness="1" Background="{StaticResource SubmenuItemBackground}" 
                                                     SnapsToDevicePixels="True">
                        <Grid x:Name="SubMenu" Grid.IsSharedSizeScope="True" Margin="2">
                          <StackPanel IsItemsHost="True" 
                                                                KeyboardNavigation.DirectionalNavigation="Cycle"/>
                        </Grid>
                        <Border.Effect>
                          <DropShadowEffect ShadowDepth="2" Color="Black"/>
                        </Border.Effect>
                      </Border>
                      <!--Border 3-->
                      <Border Margin="1,0,0,0" x:Name="TransitionBorder" Width="0" Height="2" 
                                                    VerticalAlignment="Top" HorizontalAlignment="Left" 
                                                    Background="{StaticResource SubmenuItemBackground}" SnapsToDevicePixels="False"
                                                    BorderThickness="1" BorderBrush="{StaticResource SubmenuItemBackground}"/>
                    </Grid>
                  </Popup>
                </Grid>
              </Border>
              <ControlTemplate.Triggers>
                <!-- A menu entry with check mark cannot have an icon -->
                <Trigger Property="IsChecked" Value="true">
                  <Setter Property="Visibility" TargetName="GlyphPanel" Value="Visible" />
                  <Setter Property="Visibility" TargetName="Icon" Value="Collapsed" />
                </Trigger>

                <Trigger Property="Role" Value="TopLevelHeader">
                  <Setter Property="Padding" Value="6,0,6,2"/>
                  <Setter TargetName="SubMenuPopup" Property="Placement" Value="Bottom"/>
                  <Setter TargetName="Col0" Property="MinWidth" Value="0"/>
                  <Setter TargetName="Col3" Property="Width" Value="Auto"/>
                  <Setter TargetName="Icon" Property="Visibility" Value="Collapsed"/>
                  <Setter TargetName="IGTHost" Property="Visibility" Value="Collapsed" />
                  <Setter TargetName="ArrowPanel" Property="Visibility" Value="Collapsed"/>
                  <Setter TargetName="SubMenuBorder" Property="BorderThickness" Value="1,1,1,1"/>
                  <Setter TargetName="SubMenu" Property="Margin" Value="2,3,2,2"/>
                  <Setter TargetName="TransitionBorder" Property="Width" Value="{Binding ActualWidth, ElementName=Grid}"/>
                </Trigger>
                <Trigger Property="Role" Value="TopLevelItem">
                  <Setter Property="Padding" Value="6,0,6,2"/>
                  <Setter TargetName="Col0" Property="MinWidth" Value="0"/>
                  <Setter TargetName="Col3" Property="Width" Value="Auto"/>
                  <Setter TargetName="Icon" Property="Visibility" Value="Collapsed"/>
                  <Setter TargetName="IGTHost" Property="Visibility" Value="Collapsed"/>
                  <Setter TargetName="ArrowPanel" Property="Visibility" Value="Collapsed"/>
                </Trigger>
                <Trigger Property="Role" Value="SubmenuHeader">
                  <Setter Property="DockPanel.Dock" Value="Top"/>
                  <Setter Property="Padding" Value="10,3,0,3"/>
                  <Setter TargetName="Border" Property="MinHeight" Value="22"/>
                  <Setter TargetName="Border" Property="Background" Value="{StaticResource SubmenuItemBackground}"/>
                </Trigger>
                <Trigger Property="Role" Value="SubmenuItem">
                  <Setter Property="DockPanel.Dock" Value="Top"/>
                  <Setter Property="Padding" Value="10,3,0,3"/>
                  <Setter TargetName="Border" Property="MinHeight" Value="22"/>
                  <Setter TargetName="ArrowPanel" Property="Visibility" Value="Collapsed"/>
                  <Setter TargetName="Border" Property="Background" Value="{StaticResource SubmenuItemBackground}"/>
                </Trigger>
                <MultiTrigger>
                  <MultiTrigger.Conditions>
                    <Condition Property="IsHighlighted" Value="true"/>
                    <Condition Property="Role" Value="TopLevelHeader"/>
                  </MultiTrigger.Conditions>
                  <Setter TargetName="Border" Property="Background" Value="{StaticResource MenuItemHighlightedBackground}"/>
                </MultiTrigger>
                <MultiTrigger>
                  <MultiTrigger.Conditions>
                    <Condition Property="IsHighlighted" Value="true"/>
                    <Condition Property="Role" Value="TopLevelItem"/>
                  </MultiTrigger.Conditions>
                  <Setter TargetName="Border" Property="Background" Value="{StaticResource MenuItemHighlightedBackground}"/>
                </MultiTrigger>
                <MultiTrigger>
                  <MultiTrigger.Conditions>
                    <Condition Property="IsHighlighted" Value="true"/>
                    <Condition Property="Role" Value="SubmenuHeader"/>
                  </MultiTrigger.Conditions>
                  <Setter TargetName="Border" Property="Background" Value="{StaticResource SubmenuItemBackgroundHighlighted}"/>
                </MultiTrigger>
                <MultiTrigger>
                  <MultiTrigger.Conditions>
                    <Condition Property="IsHighlighted" Value="true"/>
                    <Condition Property="Role" Value="SubmenuItem"/>
                  </MultiTrigger.Conditions>
                  <Setter TargetName="Border" Property="Background" Value="{StaticResource SubmenuItemBackgroundHighlighted}"/>
                </MultiTrigger>
                <MultiTrigger>
                  <MultiTrigger.Conditions>
                    <Condition Property="IsSubmenuOpen" Value="true"/>
                    <Condition Property="Role" Value="TopLevelHeader"/>
                  </MultiTrigger.Conditions>
                  <Setter TargetName="Border" Property="Background" Value="{StaticResource SubmenuItemBackground}"/>
                  <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource MenuSeparatorBorderBrush}"/>
                  <Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,0"/>
                </MultiTrigger>
                <Trigger Property="IsSubmenuOpen" Value="true">
                  <Setter TargetName="ArrowPanelPath" Property="Fill" Value="{StaticResource BackgroundSelected}"/>
                </Trigger>
                <Trigger Property="IsSuspendingPopupAnimation" Value="true">
                  <Setter TargetName="SubMenuPopup" Property="PopupAnimation" Value="None"/>
                </Trigger>
                <Trigger Property="Icon" Value="{x:Null}">
                  <Setter TargetName="Icon" Property="Visibility" Value="Collapsed"/>
                </Trigger>
                <Trigger Property="IsEnabled" Value="False">
                  <Setter Property="Foreground" Value="{StaticResource MenuDisabledForeground}"/>
                  <Setter Property="Background" TargetName="GlyphPanel" Value="{StaticResource DisabledSubMenuItemBackgroundBrush}" />
                  <Setter Property="BorderBrush" TargetName="GlyphPanel" Value="{StaticResource DisabledSubMenuItemBorderBrush}" />
                  <!-- Setter Property="Fill" TargetName="Glyph" Value="{StaticResource DisabledSubMenuItemFillBrush}" / -->
                </Trigger>
              </ControlTemplate.Triggers>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
    </Style.Resources>
    <Setter Property="Background" Value="{StaticResource LightBackground}"/>
    <Setter Property="Foreground" Value="{StaticResource Foreground}"/>
  </Style>
</ResourceDictionary>